封包碰撞也就是當你在講話的時候,我不等你講完,又或者根本不管你是不是在講話,我就跟著講話,這樣就會導致聽話的人不知道到底是誰在講話,講了什麼內容,因此就要做好不要碰撞的方法。
筆者以前在上電腦網路課程的時候,僅有提到CSMA/CD,運作於乙太網路上的碰撞偵測方式,筆者而這次要來討論一件事,就是CSMA/CA,以前電腦網路課沒教到的東西,因為工作的緣故,複習了一下運作於無線網路上的CSMA/CA該怎麼做,順便把筆記記下來,好讓大家了解CSMA/CA的過程。
CSMA/CD,也就是他會去偵測封包到底有沒有被碰撞,這在乙太網路上處理偵測的事情是非常容易的,但在無線網路的環境底下要偵測封包碰撞,是非常困難的。由於在同一個空間裡面發送電波,是類似於broadcast的方式,整個空間中都可以偵測到你發出的訊號,因此要在發送的同時偵測到這個東西被碰撞了,是非常困難的事情。
因此比較搞剛的人類提出了一個想法
我在丟之前先聽一下到底空間是不是乾淨的,是乾淨的再發送訊號就好了
一個簡單化的CSMA/CA的處理方法:
一開始:在傳遞封包之前,傳送端持續偵測是否有其他對接收端的存取
沒有感知到其他人在傳時:當確定好存取時間後且沒有其他人在傳輸時,傳送端開始運作
感知到其他人在傳時:傳送端隨意生成一個時間後再重新感知一次
所以CSMA/CA是先聽一下附近有沒有人講話,沒有人講話再講話
CSMA/CD是不管了直接傳,發現打斷其他人講話時就回來等一下再傳